﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using UVM_Utileria;

namespace UVM_Pretira_Facade
{
    public class PretiraFac
    {

        public List<Oferta> GetOferta(Usuario usr)
        {
            List<Oferta> lstoferta = null;
            Oferta ofert = null;
            using (PretiraDBDataContext db = new PretiraDBDataContext(Utilerias.Decriptar(Utilerias.ConnectionString)))
            {
                var of = from x in db.sp_generacion(usr.UserName, usr.PLAN)
                         select x;
                DIAIMPARTIR imp = null;
                if (of != null)
                {
                    lstoferta = new List<Oferta>();
                    foreach (var item in of)
                    {
                       ofert = lstoferta.Find(delegate(Oferta f) { return (f.NRC == item.NRC) && (f.Materia == item.MATERIA); });
                       if (ofert == null)
                       {
                           ofert = new Oferta()
                           {
                               Curso = item.CURSO,
                               Materia = item.MATERIA,
                               DiaImpartidos = new List<DIAIMPARTIR>(),
                               Nombre = item.NOMBRE,
                               NRC = item.NRC
                           };

                           lstoferta.Add(ofert);

                       }

                       if (ofert.DiaImpartidos == null)
                       {
                           ofert.DiaImpartidos = new List<DIAIMPARTIR>();
                           
                       }
                       imp = new DIAIMPARTIR()
                       {
                           Dia = item.DIA,
                           Horario = item.HORARIO,
                           HorarioFin = item.HORAFIN.ToString(),
                           HorarioInicio = item.HORAINICIO.ToString()
                       };
                       ofert.DiaImpartidos.Add(imp);
                       
                    }

                }
                else
                {
                    lstoferta = new List<Oferta>();
                }
                
            }
            return lstoferta;
        }
    }
}
